.mall-container {
  // min-height: 100vh;
  background: $mall-bg-100;
  box-sizing: border-box;

  .custom-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: linear-gradient(to bottom, rgba(255, 138, 95, 0.08), rgba(255, 138, 95, 0.03));
    box-shadow: 0 2rpx 12rpx rgba(255, 138, 95, 0.06);
    
    .navbar-content {
      position: relative;
      height: 44px;
      display: flex;
      align-items: center;
      padding: 0 30rpx;
      
      .title {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        font-size: 32rpx;
        font-weight: bold;
        color: #333;
      }
      
      .search-box {
        display: flex;
        align-items: center;
        background: rgba(255, 255, 255, 0.9);
        height: 64rpx;
        border-radius: 60rpx;
        padding: 0 24rpx;
        width: 450rpx;
        box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.03);
        
        input {
          flex: 1;
          height: 100%;
          margin-left: 16rpx;
          font-size: 26rpx;
        }
        
        .placeholder {
          color: $mall-text-200;
        }
      }
    }
  }

  .goods-list {
    padding: 10rpx 0;
    padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
    
    .goods-item {
      margin-bottom: 20rpx;
      background: #fff;
      border-radius: 16rpx;
      display: flex;
      padding: 20rpx;
      box-shadow: 0 2rpx 16rpx rgba(255, 138, 95, 0.06);
      opacity: 0;
      transform: translateX(50px);
      animation: slideIn 0.3s ease forwards;
      
      @for $i from 1 through 10 {
        &:nth-child(#{$i}) {
          animation-delay: #{$i * 0.1}s;
        }
      }
      
      .goods-img {
        width: 200rpx;
        height: 200rpx;
        flex-shrink: 0;
        border-radius: 16rpx;
        overflow: hidden;
        
        image {
          width: 100%;
          height: 100%;
          border-radius: 16rpx;
          object-fit: cover;
        }
      }
      
      .goods-info {
        flex: 1;
        margin-left: 20rpx;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-width: 0;
        padding: 4rpx 0;

        .goods-title {
          font-size: 30rpx;
          color: rgba($mall-text-100, 0.95);
          font-weight: 600;
          line-height: 1.4;
          margin-bottom: 8rpx;
          /* #ifndef APP-NVUE */
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 2;
          overflow: hidden;
          /* #endif */
        }

        .goods-desc {
          font-size: 26rpx;
          color: rgba($mall-text-200, 0.9);
          line-height: 1.4;
          margin-bottom: 12rpx;
          /* #ifndef APP-NVUE */
          display: -webkit-box;
          -webkit-box-orient: vertical;
          -webkit-line-clamp: 1;
          overflow: hidden;
          /* #endif */
        }

        .goods-price-wrap {
          display: flex;
          align-items: flex-start;
          justify-content: space-between;
          margin-top: auto;
          
          .price-left {
            flex: 1;
            margin-right: 16rpx;
            
            .cash-price {
              display: flex;
              align-items: baseline;
              
              .currency {
                font-size: 24rpx;
                color: rgba($mall-primary-100, 0.9);
                margin-right: 4rpx;
              }
              
              .price {
                font-size: 36rpx;
                color: $mall-primary-100;
                font-weight: bold;
              }
            }
            
            .points-price {
              .points {
                font-size: 28rpx;
                background: linear-gradient(to right, $mall-accent-100, rgba($mall-accent-100, 0.9));
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                font-weight: 600;
              }
            }
            
            .mixed-payment {
              display: flex;
              flex-wrap: wrap;
              align-items: baseline;
              
              .points {
                font-size: 28rpx;
                color: $mall-accent-100;
                font-weight: 600;
                margin-right: 8rpx;
                margin-bottom: 4rpx;
              }
              
              .plus {
                font-size: 24rpx;
                color: $mall-text-200;
                margin: 0 8rpx;
              }
              
              .cash-part {
                display: flex;
                align-items: baseline;
                
                .currency {
                  font-size: 24rpx;
                  color: $mall-primary-100;
                  margin-right: 4rpx;
                }
                
                .price {
                  font-size: 36rpx;
                  color: $mall-primary-100;
                  font-weight: bold;
                }
              }
            }
            
            .gift-payment {
              display: flex;
              align-items: baseline;
              
              .gift-text {
                font-size: 26rpx;
                color: $mall-primary-100;
                margin-right: 8rpx;
              }
              
              .gift-num {
                font-size: 28rpx;
                color: $mall-primary-100;
                font-weight: 600;
              }
            }
          }
          
          .price-right {
            flex-shrink: 0;
            font-size: 24rpx;
            color: rgba($mall-text-200, 0.75);
            background: linear-gradient(to right, rgba($mall-primary-200, 0.08), rgba($mall-primary-200, 0.12));
            padding: 4rpx 12rpx;
            border-radius: 20rpx;
            white-space: nowrap;
          }
        }
      }

      &:active {
        opacity: 0.8;
        transform: scale(0.98);
        transition: all 0.2s ease !important;
        box-shadow: 0 2rpx 12rpx rgba(255, 138, 95, 0.04);
      }
    }
  }

  :deep(.uv-vtabs) {
    .uv-vtabs__bar {
      border-right: 1rpx solid $mall-bg-200;
      background: linear-gradient(to bottom, rgba(242, 243, 245, 0.6), rgba(255, 255, 255, 0.9));
      
      &-item {
        height: 90rpx;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 28rpx;
        position: relative;
        
        &--active {
          background: rgba(255, 255, 255, 0.95);
          color: $mall-primary-100;
          font-weight: bold;
          &::after {
            content: '';
            position: absolute;
            right: 0;
            top: 0;
            bottom: 0;
            width: 6rpx;
            background: $mall-primary-100;
          }
        }
      }
    }
    
    .uv-vtabs__content {
      background: #fff;
      padding: 0 20rpx;
      padding-bottom: calc(120rpx + env(safe-area-inset-bottom));
    }
  }
}

.empty {
		position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        text-align: center;
	}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.category-header {
	display: flex;
	justify-content: space-around;
	align-items: center;
	padding: 20rpx;
	background: linear-gradient(to bottom, rgba(255, 138, 95, 0.06), rgba(255, 138, 95, 0.02));
	box-shadow: 0 2rpx 12rpx rgba(255, 138, 95, 0.05);
	
	.category-item {
		display: flex;
		flex-direction: column;
		align-items: center;
		position: relative;
		
		.icon-wrap {
			width: 76rpx;
			height: 76rpx;
			padding: 6rpx;
			border-radius: 50%;
			overflow: hidden;
			margin-bottom: 10rpx;
			border: 4rpx solid transparent;
			transition: all 0.3s ease;
			
			image {
				width: 100%;
				height: 100%;
				object-fit: cover;
				border-radius: 50%;
			}
		}
		
		.label {
			padding: 4rpx 16rpx;
			background: linear-gradient(to right, $mall-primary-100, $mall-primary-200);
			border-radius: 24rpx;
			font-size: 22rpx;
			color: #fff;
			transition: transform 0.3s ease;
		}
		
		&.active {
			.icon-wrap {
				border-color: $mall-primary-100;
				box-shadow: 0 0 16rpx rgba($mall-primary-100, 0.25);
			}
			
			.label {
				transform: scale(1.08);
				box-shadow: 0 4rpx 8rpx rgba($mall-primary-100, 0.2);
			}
		}
		
		&:active {
			opacity: 0.8;
		}
	}
}

